package com.ruoyi.exam.service;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.exam.domain.PQuestion;
import com.ruoyi.exam.vo.QuestionListVo;
import com.ruoyi.exam.vo.QuestionVo;
import com.ruoyi.exam.vo.SQuestionResult;
import com.ruoyi.exam.vo.StudentQuestionVo;

import java.util.List;

/**
 * 试题Service接口
 *
 * @author ruoyi
 * @date 2021-12-31
 */
public interface IPQuestionService
{
    /**
     * 查询试题
     *
     * @param id 试题主键
     * @return 试题
     */
    public QuestionVo selectPQuestionById(Long id,Boolean type);

    /**
     * 查询试题列表
     *
     * @param pQuestion 试题
     * @return 试题集合
     */
    public List<PQuestion> selectPQuestionList(PQuestion pQuestion);

    /**
     * 查询试题列表
     *
     * @param pQuestion 试题
     * @return 试题集合
     */
    public List<QuestionListVo> selectPQuestionListVo(PQuestion pQuestion);

    /**
     * 新增试题
     *
     * @param pQuestion 试题
     * @return 结果
     */
    public int insertPQuestion(PQuestion pQuestion);

    /**
     * 修改试题
     *
     * @param pQuestion 试题
     * @return 结果
     */
    public int updatePQuestion(PQuestion pQuestion);

    /**
     * 批量删除试题
     *
     * @param ids 需要删除的试题主键集合
     * @return 结果
     */
    public int deletePQuestionByIds(Long[] ids);

    /**
     * 删除试题信息
     *
     * @param id 试题主键
     * @return 结果
     */
    public int deletePQuestionById(Long id);


    /**
     * 新增试题
     *
     * @param questionVo 试题
     * @return 结果
     */
    public int sevePQuestion(QuestionVo questionVo,String userName);

    /**
     * 修改试题
     *
     * @param questionVo 试题
     * @return 结果
     */
    public int updatePQuestion(QuestionVo questionVo,String userName);

    public List<SQuestionResult> randomQuestionList(StudentQuestionVo studentQuestionVo);

    public List<SQuestionResult> findByBQuestion(StudentQuestionVo studentQuestionVo);

    public List<SQuestionResult>selectSQuestionList(StudentQuestionVo studentQuestionVo);

    public List<QuestionVo> selectPQuestionByList(Long id,Boolean type,Boolean is_b);

    public List<QuestionVo> findByBQuestionInfo(StudentQuestionVo studentQuestionVo);

    AjaxResult getTypes();
}
